[LINUX] kexec: Backport fix for overlapping program headers in x86_64 linker script.
authorIan Campbell <ian.campbell@xensource.com>
Thu, 30 Nov 2006 12:38:51 +0000 (12:38 +0000)
committerIan Campbell <ian.campbell@xensource.com>
Thu, 30 Nov 2006 12:38:51 +0000 (12:38 +0000)
This allows a native kernel built from the xen tree to be used as a
crash kernel on x86_64.

Signed-off-by: Ian Campbell <ian.campbell@xensource.com>
patches/linux-2.6.16.33/git-dbaab49f92ff6ae6255762a948375e4036cbdbd2.patch [new file with mode: 0644]
patches/linux-2.6.16.33/series

diff --git a/patches/linux-2.6.16.33/git-dbaab49f92ff6ae6255762a948375e4036cbdbd2.patch b/patches/linux-2.6.16.33/git-dbaab49f92ff6ae6255762a948375e4036cbdbd2.patch
new file mode 100644 (file)
index 0000000..199cabd
--- /dev/null
@@ -0,0 +1,47 @@
+commit dbaab49f92ff6ae6255762a948375e4036cbdbd2
+Author: Vivek Goyal <vgoyal@in.ibm.com>
+Date:   Sat Oct 21 18:37:03 2006 +0200
+
+    [PATCH] x86-64: Overlapping program headers in physical addr space fix
+    
+    o A recent change to vmlinux.ld.S file broke kexec as now resulting vmlinux
+      program headers are overlapping in physical address space.
+    
+    o Now all the vsyscall related sections are placed after data and after
+      that mostly init data sections are placed. To avoid physical overlap
+      among phdrs, there are three possible solutions.
+       - Place vsyscall sections also in data phdrs instead of user
+       - move vsyscal sections after init data in bss.
+       - create another phdrs say data.init and move all the sections
+         after vsyscall into this new phdr.
+    
+    o This patch implements the third solution.
+    
+    Signed-off-by: Vivek Goyal <vgoyal@in.ibm.com>
+    Signed-off-by: Andi Kleen <ak@suse.de>
+    Cc: Magnus Damm <magnus@valinux.co.jp>
+    Cc: Andi Kleen <ak@suse.de>
+    Cc: "Eric W. Biederman" <ebiederm@xmission.com>
+    Signed-off-by: Andrew Morton <akpm@osdl.org>
+
+diff --git a/arch/x86_64/kernel/vmlinux.lds.S b/arch/x86_64/kernel/vmlinux.lds.S
+index b9df2ab..1283614 100644
+--- a/arch/x86_64/kernel/vmlinux.lds.S
++++ b/arch/x86_64/kernel/vmlinux.lds.S
+@@ -17,6 +17,7 @@ PHDRS {
+       text PT_LOAD FLAGS(5);  /* R_E */
+       data PT_LOAD FLAGS(7);  /* RWE */
+       user PT_LOAD FLAGS(7);  /* RWE */
++      data.init PT_LOAD FLAGS(7);     /* RWE */
+       note PT_NOTE FLAGS(4);  /* R__ */
+ }
+ SECTIONS
+@@ -131,7 +132,7 @@ SECTIONS
+   . = ALIGN(8192);            /* init_task */
+   .data.init_task : AT(ADDR(.data.init_task) - LOAD_OFFSET) {
+       *(.data.init_task)
+-  } :data
++  }:data.init
+   . = ALIGN(4096);
+   .data.page_aligned : AT(ADDR(.data.page_aligned) - LOAD_OFFSET) {
index 81cc316ad8751df4e95ca778cd6491eabc58bb79..1f01b4033fb8e714b0b8952867681d5e2a5c0382 100644 (file)
@@ -31,6 +31,7 @@ xen-hotplug.patch
 xenoprof-generic.patch
 x86-put-note-sections-into-a-pt_note-segment-in-vmlinux.patch
 x86_64-put-note-sections-into-a-pt_note-segment-in-vmlinux.patch
+git-dbaab49f92ff6ae6255762a948375e4036cbdbd2.patch
 x86-elfnote-as-preprocessor-macro.patch
 vsnprintf.patch
 kasprintf.patch